package com.ygsoft.activiti.listener;

import org.activiti.engine.delegate.DelegateExecution;
import org.activiti.engine.delegate.ExecutionListener;
import org.springframework.stereotype.Service;

/**
 * 全局的监听器
 * 全局监听器主要使用的场景就是监控这个流程的启动和结束。流程开始的时候可以监控，流程结束的时候可以监控，这里说的是流程实例启动结束的监控，并非是流程* 引擎的启动结束监控。流程引擎的启动结束监控可以参考http://blog.csdn.net/qq_30739519/article/details/51217614 不要混淆了这些概念。
 * 下面我们先定义一个简单的bpmn xml文件看一下如何使用全局的监听器。
 * 全局监听器实现的接口是org.activiti.engine.delegate.ExecutionListener，org.activiti.engine.impl.pvm.delegate.ExecutionListener这个* 接口新版本已经废弃。
 * ExecutionListener定义如下：流程实例start、end、take的时候调用。take是监控连线的时候使用的。
 * @author zhx
 * @create 2017-11-22 9:10
 **/
@Service("MyExecutionListener")
public class MyExecutionListener implements ExecutionListener {

    @Override
    public void notify(DelegateExecution delegateExecution) throws Exception {
        String eventName = delegateExecution.getEventName();
        //start
        if ("start".equals(eventName)) {
            System.out.println("开始start=========");
        }else if ("end".equals(eventName)) {
            System.out.println("结束end=========");
        }else if ("take".equals(eventName)) {
            System.out.println("take=========");
        }
    }
}

